build(deps): switch package manager to pnpm - #1621
Conversation
|
Important Review skippedToo many files! This PR contains 115 files, which is 15 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (115)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
af7c7ad to
6b2969a
Compare
📚 Documentation Preview
|
🧩 Storybook Preview
|
7bd38b1 to
03bf35f
Compare
check:affected's full-gate list carried two placeholder filenames that exist nowhere, leaving pnpm-lock.yaml, pnpm-workspace.yaml, and patches/ covered only by the unknown-input fail-closed branch. Name them explicitly and cover them in the fail-closed test. Point the preview-controller control-plane test at the setup composite that actually exists, and record in pnpm-workspace.yaml why the router-plugin unplugin override pins 3.0.0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
dac2ebf to
13b3d7f
Compare
The server-contracts and webapp-e2e legs pull the Postgres image tagged with the PR's base commit, but that tag is published by the base commit's own main run — a PR whose base advanced minutes earlier races it and fails with 'manifest unknown'. Fall back to building the identical docker/postgres Dockerfile when the pull misses. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Description
Replaces Bun with exact-pinned pnpm 12 across the repository so Node.js 24 is the only JavaScript runtime and pnpm is the only package manager. This is an atomic toolchain migration: it adds the pnpm workspace and lockfile, moves install policy to native pnpm configuration, updates CI, Docker, hooks, scripts, contributor documentation, and removes the obsolete Bun lockfile qualification pipeline.
The migration also adds a terminal repository policy check that rejects Bun artifacts and commands outside immutable historical records. ADR 0037 records the Node.js 24 and pnpm 12 decision and supersedes ADR 0033.
Notable implementation details
packageManageranddevEngines.minimumReleaseAge: 4320and an explicitallowBuildsmap instead of the custom lockfile qualifier.pnpm/setupcomposite, which installs the self-contained pnpm binary and pinned Node.js runtime with pnpm-store caching.pnpm fetch, an offline frozen install, and a BuildKit store cache.Fixes #1598
How to test
Validated locally:
Also verified that
git grep -iw bunis clean outside historical ADR/changelog files and that the isolated live-test SDK install uses--ignore-workspacerather than attaching to the root workspace.The local host provides Node.js 24.15.0, while this PR intentionally requires 24.19.0. The checks above ran with pnpm's local runtime-version check bypassed;
check:package-managerstill validated the committed 24.19.0 pin, and CI installs that exact version through the shared setup action.The full BuildKit Docker build remains CI-owned because the local Docker installation does not include buildx. The digest-pinned pnpm builder was exercised separately and installed Node.js 24.19.0 successfully, and the webapp production build passes with the final dependency graph.
Checklist
.changeset/README.mdMIGRATION.mddoes not need an update